package cmd

import (
	"fmt"
	"strings"
	"time"

	"git-todo/internal/git"
	"git-todo/internal/model"
	"git-todo/internal/storage"
)

func Add(args []string) {
	if len(args) == 0 {
		fmt.Println("请提供待办任务内容")
		return
	}

	content := strings.Join(args, " ")

	// 获取分支信息
	branch, err := git.GetCurrentBranch()
	if err != nil {
		fmt.Println("不在 Git 仓库中")
		return
	}

	// 获取待办任务数据
	todos, err := storage.LoadTodos()
	if err != nil {
		fmt.Println("加载待办任务数据失败:", err)
		return
	}

	tasks := todos[branch]
	if tasks == nil {
		tasks = []model.Task{}
	}

	// 计算新待办任务的 ID
	var maxID int
	for _, task := range tasks {
		if task.ID > maxID {
			maxID = task.ID
		}
	}
	newID := maxID + 1

	// 添加新待办任务
	newTask := model.Task{
		ID:        newID,
		Content:   content,
		Done:      false,
		CreatedAt: time.Now().Format(time.RFC3339),
	}
	todos[branch] = append(todos[branch], newTask)

	// 保存待办任务数据
	err = storage.SaveTodos(todos)
	if err != nil {
		fmt.Println("保存待办任务数据失败:", err)
		return
	}

	fmt.Println("待办任务添加成功!")
}
